This disclosure relates generally to the field of computer systems. More particularly, but not by way of limitation, this disclosure relates to a technique for effectively detecting customizations done to a software application after the application is deployed to a customer's environment.
In an application environment, a customer deployed application has an initial definition. Over time, additional versions of the application are generally supplied to the customer by the application's original source. These later versions may add or alter objects within the application. The application may also have objects that are added or altered by the customer or a third party. As used herein, the term application “objects” generally means elements within the application.
Sometimes it is necessary to know whether objects in an application have been changed, and whether the change is compatible with the customization rules set out by the application's original source. There are some existing applications which use checksums to detect file alterations. For example, CheckMate is a preference pane for Mac OS® X 10.1 and higher that allows a user to generate and compare secure MD5 checksums for critical files. (MACOS is a registered trademark of Apple Computer Inc.) This can be used to detect whether files have been altered by viruses, rootkits, Trojan horses, or other possibly malicious programs. However, use of checksums on files does not allow detection of specific types of changes in a file and, further, does not allow detection of changes in different versions of the same file.
There is a need, therefore, for a simple, elegant mechanism to identify which application component objects have been changed by a customer and further, which have been changed in a supportable way versus those changed in an unsupportable way.